<?php
	require_once( 'core_DataBaseConnect.php' );
	require_once( 'core_Response.php' );
	require_once( 'core_ErrorCode.php' );
	require_once( 'dao_MemberDAO.php' );
	require_once( '_configs.php' );
	
	function func( $con, $post, $returnType )
	{
		$loginType;
		if( !is_null($post[ 'platform' ]) && !is_null($post[ 'token' ])  )
		{
			// 1. 플랫폼 로그인
			$loginType = 0;
			$result = MemberDAO::selectMemberByPlatformToken( $con, $post[ 'platform' ], $post[ 'token' ] );
		}else if( !is_null($post[ 'id' ]) && !is_null($post[ 'pass' ]) ){
			// 2. 이메일 로그인
			$loginType = 1;
			$result = MemberDAO::selectMemberByID( $con,  $post[ 'id' ] );
		}else{
			// 로그인 실패
			return Response::FAIL( ErrorCode::FAIL_LOGIN_EMAIL, '로그인에 실패하였습니다. 존재하지 않는 계정정보입니다.', $returnType );
		}

		
		$cnt = DataBaseConnect::num_rows( $result );
		if( $cnt < 1 )
		{
			// 로그인 실패
			if( $loginType == 0 )
			{
				return Response::FAIL( ErrorCode::FAIL_LOGIN_EMAIL, '로그인에 실패하였습니다. 존재하지 않는 토큰입니다.', $returnType );
			}else{
				return Response::FAIL( ErrorCode::FAIL_LOGIN_EMAIL, '로그인에 실패하였습니다. 존재하지 않는 이메일입니다.', $returnType );
			}
		}else{
			$fetch = DataBaseConnect::fetch_assoc($result);
			if($fetch['STATUS'] == 0 )
			{
				// 미승인 멤버
				return Response::FAIL( ErrorCode::FAIL_LOGIN_NOT_ACTIVE, '로그인에 실패하였습니다. 인증메일이 확인되지 않았습니다.', $returnType );
			}else if($fetch['STATUS'] == 9 )
			{
				// 미승인 멤버
				return Response::FAIL( ErrorCode::FAIL_LOGIN_BLOCK, '로그인에 실패하였습니다. 활동이 정지되었습니다.', $returnType );
			}else if( $loginType == 1 && ($fetch['PASS'] != sha1( $post[ 'pass' ] )) )
			{
				// 로그인 실패
				return Response::FAIL( ErrorCode::FAIL_LOGIN_PASS, '로그인에 실패하였습니다. 비밀번호가 잘못입력되었습니다.', $returnType );
			}else{
				// 최종 접속 로그/세션ID 업데이트
				$sessionID = rand( 0, 99999999);
				$result = MemberDAO::updateLastLog( $con, $fetch[ 'SEQ' ], $sessionID );
				
				$response = DataBaseConnect::fetchSerialize( $fetch, array( 'SEQ', 'ID', 'NICKNAME', 'SEX', 'BIRTH', 'REGION', 'AUTHOR', 'STATUS' ) );
				$response[ 'sessionID' ] = $sessionID;
				
				return Response::SUCCESS( $response, $returnType );
			}
		}
	}
?>